home *** CD-ROM | disk | FTP | other *** search
-
- ** Programmer's Technical Reference for MSDOS and the IBM PC **
-
-
-
- TABLE OF CONTENTS
-
-
- INTRO Introduction, credits, copyrights
-
-
- CHAPTER 1 DOS and the PC
-
- Some History ..................................................... 1**1
- What is DOS? ..................................................... 1**2
- Other Operating Systems .......................................... 1**3
- Specific Versions of MS/PC-DOS ................................... 1**4
- The Operating System Heirarchy ................................... 1**5
- DOS Structure .................................................... 1**6
- DOS Initialization ............................................... 1**7
-
-
- CHAPTER 2 Low Memory and Absolute Addresses
-
- Introduction ..................................................... 2**1
- System Memory Map ................................................ 2**2
- A Brief Guide to Current Memory Terminology ...................... 2**3
- PC Port Assignment ............................................... 2**4
- Reserved Memory Locations ........................................ 2**5
- Absolute Addresses ............................................... 2**6
- The IBM PC System Interrupts (Overview) .......................... 2**7
- Quick Chart of Interrupts 00h-0FFh ............................... 2**8
- IRQ Usage Chart .................................................. 2**9
- The IBM-PC System Interrupts 00h-0Fh (in detail) ................. 2**10
-
-
- CHAPTER 3 ROM BIOS and Serice Interrupts
-
- Calling the ROM BIOS ............................................. 3**1
- Interrupt 10h Video Services .................................... 3**2
- Interrupt 11h Equipment Check ................................... 3**3
- Interrupt 12h Memory Size ....................................... 3**4
- Interrupt 13h Disk Functions .................................... 3**5
- Interrupt 14h Initialize and Access Serial Port ................. 3**6
- FOSSIL Drivers ................................................... 3**7
- Interrupt 15h Cassette I/O ...................................... 3**8
- Interrupt 16h Keyboard I/O ...................................... 3**9
- Interrupt 17h Printer ........................................... 3**10
- Interrupt 18h ROM BASIC ......................................... 3**11
- Interrupt 19h Bootstrap Loader .................................. 3**12
- Interrupt 1Ah Time of Day ....................................... 3**13
- Interrupt 1Bh Control-Break ..................................... 3**14
- Interrupt 1Ch Timer Tick ........................................ 3**15
- Interrupt 1Dh Vector of Video Initialization Parameters ......... 3**16
- Interrupt 1Eh Vector of Diskette Controller Parameters .......... 3**17
- Interrupt 1Fh Ptr to Graphics Char Extensions (Graphics Set 2) .. 3**18
-
-
- CHAPTER 4 DOS Function Requests
-
- General Programming Guides ....................................... 4**1
- DOS Registers .................................................... 4**2
- DOS Stacks ....................................................... 4**3
- DOS Interrupts ................................................... 4**4
- Interrupt 20h (Terminate) ........................................ 4**5
- DOS Services (quick list) ........................................ 4**6
- Calling the DOS Services ......................................... 4**7
- Version Specific Information ..................................... 4**8
- Compatibility Problems With DOS 4.0+ ............................. 4**9
- PCjr Cartridge Support ........................................... 4**10
- eDOS 4.0 ......................................................... 4**11
- DOS Services in Detail ........................................... 4**12
-
-
- CHAPTER 5 Interrupts 22h through 0FFh
-
- Interrupt 22h Terminate Address ................................ 5**1
- Interrupt 23h Ctrl-Break Exit Address .......................... 5**2
- Interrupt 24h Critical Error Handler ........................... 5**3
- Interrupt 25h Absolute Disk Read ............................... 5**4
- Interrupt 26h Absolute Disk Write .............................. 5**5
- Interrupt 27h Terminate And Stay Resident ...................... 5**6
- Interrupt 28h (not documented by Microsoft) .................... 5**7
- Interrupt 29h (not documented by Microsoft) .................... 5**8
- Interrupt 2Ah Microsoft Networks - Session Layer Interrupt ..... 5**9
- Interrupt 2Bh Unknown .......................................... 5**10
- Interrupt 2Ch Unknown .......................................... 5**11
- Interrupt 2Dh Unknown .......................................... 5**12
- Interrupt 2Eh Alternate EXEC (DOS 2.0+) ........................ 5**13
- Interrupt 2Fh Multiplex Interrupt .............................. 5**14
- Interrupt 30h FAR jump instruction for CP/M-style calls ........ 5**15
- Interrupt 31h Unknown .......................................... 5**16
- Interrupt 32h Unknown .......................................... 5**17
- Interrupt 33h Used by Microsoft Mouse Driver Function Calls .... 5**18
- Interrupt 34h Turbo C/Microsoft languages - Floating Point .... 5**19
- Interrupt 35h Turbo C/Microsoft languages - Floating Point .... 5**20
- Interrupt 36h Turbo C/Microsoft languages - Floating Point .... 5**21
- Interrupt 37h Turbo C/Microsoft languages - Floating Point .... 5**22
- Interrupt 38h Turbo C/Microsoft languages - Floating Point .... 5**23
- Interrupt 39h Turbo C/Microsoft languages - Floating Point .... 5**24
- Interrupt 3Ah Turbo C/Microsoft languages - Floating Point .... 5**25
- Interrupt 3Bh Turbo C/Microsoft languages - Floating Point .... 5**26
- Interrupt 3Ch Turbo C/Microsoft languages - Floating Point .... 5**27
- Interrupt 3Dh Turbo C/Microsoft languages - Floating Point .... 5**28
- Interrupt 3Eh Turbo C/Microsoft languages - Floating Point ..... 5**29
- Interrupt 3Fh Overlay Manager Interrupt (Microsoft LINK.EXE) ... 5**30
- Interrupt 40h Hard Disk BIOS ................................... 5**31
- Interrupt 41h Hard Disk Parameters ............................. 5**32
- Interrupt 42h Pointer to screen BIOS entry ..................... 5**33
- Interrupt 43h Pointer to EGA Graphics Character Table .......... 5**34
- Interrupt 44h Pointer to graphics character table .............. 5**35
- Interrupt 45h Reserved by IBM (not initialized) ............... 5**36
- Interrupt 46h Pointer to second hard disk parameter block ...... 5**37
- Interrupt 47h Reserved by IBM (not initialized) ............... 5**38
- Interrupt 48h Cordless Keyboard Translation .................... 5**39
- Interrupt 49h Non-kbd Scan Code Translation Table Addr (PCjr) .. 5**40
- Interrupt 4Ah Real-Time Clock Alarm (Convertible, PS/2) ........ 5**41
- Interrupt 4Bh Reserved by IBM (not initialized) ............... 5**42
- Interrupt 4Ch Reserved by IBM (not initialized) ............... 5**43
- Interrupt 4Dh Reserved by IBM (not initialized) ............... 5**44
- Interrupt 4Eh Reserved by IBM (not initialized) ............... 5**45
- Interrupt 4Fh Reserved by IBM (not initialized) ............... 5**46
- Interrupt 50-57 IRQ0-IRQ7 Relocation ............................. 5**47
- Interrupt 58h Reserved by IBM (not initialized) ............... 5**48
- Interrupt 59h Reserved by IBM (not initialized) ............... 5**49
- Interrupt 5Ah Reserved by IBM (not initialized) .............. 5**50
- Interrupt 5Bh Reserved by IBM (not initialized) ............... 5**51
- Interrupt 5Ah Cluster Adapter BIOS entry address ............... 5**52
- Interrupt 5Bh Reserved by IBM (not initialized) ............... 5**53
- Interrupt 5Ch NETBIOS interface entry port, TOPS ............... 5**54
- Interrupt 5Dh Reserved by IBM (not initialized) ............... 5**55
- Interrupt 5Eh Reserved by IBM (not initialized) ............... 5**56
- Interrupt 5Fh Reserved by IBM (not initialized) ............... 5**57
- Interrupt 60h-67h User Program Interrupts ....................... 5**58
- Interrupt 60h Network OS Interface ............................. 5**59
- Interrupt 67h Expanded Memory Board Driver Interrupt ........... 5**60
- Interrupt 68h Not Used (not initialized) ...................... 5**61
- Interrupt 69h Not Used (not initialized) ...................... 5**62
- Interrupt 6Ah Not Used (not initialized) ...................... 5**63
- Interrupt 6Bh Not Used (not initialized) ...................... 5**64
- Interrupt 6Ch System Resume Vector (Convertible) ............... 5**65
- Interrupt 6Dh Not Used (not initialized) ...................... 5**66
- Interrupt 6Eh Not Used (not initialized) ...................... 5**67
- Interrupt 6Fh 10-Net API........................................ 5**68
- Interrupt 70h IRQ 8, Real Time Clock Int (AT, XT/286, PS/2) .... 5**69
- Interrupt 71h IRQ 9, Redirected to IRQ 8 (AT, XT/286, PS/2) .... 5**70
- Interrupt 72h IRQ 10 (AT, XT/286, PS/2) Reserved ............. 5**71
- Interrupt 73h IRQ 11 (AT, XT/286, PS/2) Reserved ............. 5**72
- Interrupt 74h IRQ 12 Mouse Interrupt (PS/2) ................... 5**73
- Interrupt 75h IRQ 13, Coprocessor Error (AT) ................... 5**74
- Interrupt 76h IRQ 14, Hard Disk Controller (AT, XT/286, PS/2) .. 5**75
- Interrupt 77h IRQ 15 (AT, XT/286, PS/2) Reserved .............. 5**76
- Interrupt 78h Not Used ......................................... 5**77
- Interrupt 79h Not Used ......................................... 5**78
- Interrupt 7Ah Reserved ......................................... 5**79
- Interrupt 7Bh-7Eh Not Used by IBM ............................... 5**80
- Interrupt 7Ch REXX-PC API ...................................... 5**81
- Interrupt 7Fh IBM 8514/A Graphics Adapter API .................. 5**82
- Interrupt 80h-85h Reserved by BASIC ............................. 5**83
- Interrupt 86h Int 18 when relocated by NETBIOS ................. 5**84
- Interrupt 86h-0F0h Used by BASICA ............................... 5**85
- Interrupt 0A4h Right Hand Man API ............................... 5**86
- Interrupt 0D4h PC-MOS/386 API ................................... 5**87
- Interrupt 0E0h Digital Research CP/M-86 function calls .......... 5**88
- Interrupt 0E1h PC Cluster Disk Server Information ............... 5**89
- Interrupt 0E2h PC Cluster Program ............................... 5**90
- Interrupt 0E4h Logitech Modula-2 v2.0 Monitor Entry ........... 5**91
- Interrupt 0E5h Not Used ......................................... 5**92
- Interrupt 0E6h Not Used ......................................... 5**93
- Interrupt 0E7h Not Used ......................................... 5**94
- Interrupt 0E8h Not Used ......................................... 5**95
- Interrupt 0E9h Not Used ......................................... 5**96
- Interrupt 0EAh Not Used ......................................... 5**97
- Interrupt 0EBh Not Used ......................................... 5**98
- Interrupt 0ECh Not Used ......................................... 5**99
- Interrupt 0EDh Not Used ......................................... 5**100
- Interrupt 0EEh Not Used ......................................... 5**101
- Interrupt 0EFh GEM interface (Digital Research) ................. 5**102
- Interrupt 0F0h unknown .......................................... 5**103
- Interrupts 0F1h-0FFh (absolute addresses 3C4h-3FFh) ............. 5**104
- Interrupt 0F4h Not Used ............ ............................ 5**105
- Interrupt 0F5h Not Used ............ ............................ 5**106
- Interrupt 0F8h Set Shell Interrupt (OEM) ........................ 5**107
- Interrupt 0F9h Reserved ......................................... 5**108
- Interrupt 0FAh USART ready (RS-232C) ............................ 5**109
- Interrupt 0FBh USART RS ready (keyboard) ........................ 5**110
- Interrupt 0FCh Unknown ...........................................5**111
- Interrupt 0FDh reserved for user interrupt ...................... 5**112
- Interrupt 0FEh reserved by IBM .................................. 5**113
- Interrupt 0FFh reserved by IBM .................................. 5**114
-
-
-
- CHAPTER 6 DOS Control Blocks and Work Areas
-
- DOS Address Space ................................................ 6**1
- Storage Blocks ................................................... 6**2
- Disk Transfer Area (DTA) ......................................... 6**3
- Program Segment Prefix ........................................... 6**4
- Memory Control Blocks ............................................ 6**5
- DOS Program Segment .............................................. 6**6
-
-
- CHAPTER 7 DOS File Information
-
- File Management Functions ........................................ 7**1
- FCB Function Calls ............................................... 7**2
- Handle Function Calls ............................................ 7**3
- Special File Handles ............................................. 7**4
- Raw and Cooked File I/O .......................................... 7**5
- Number of Open Files Allowed .................................... 7**6
- Restrictions on FCB Usage ........................................ 7**7
- Restrictions on Handle usage ..................................... 7**8
- Allocating Space to a File ....................................... 7**9
- MSDOS / PCDOS Differences ........................................ 7**10
- .COM File Structure .............................................. 7**11
- .EXE File Structure .............................................. 7**12
- The Relocation Table ............................................. 7**13
- "NEW" .EXE Format (Microsoft Windows and OS/2) ................... 7**14
- Standard File Control Block ...................................... 7**15
- Extended File Control Block ...................................... 7**16
- Disk Transfer Area ............................................... 7**17
-
-
- CHAPTER 8 DOS Disk Information
-
- The DOS Area ..................................................... 8**1
- The Boot Record .................................................. 8**2
- DOS File Allocation Table (FAT) .................................. 8**3
- Media Descriptor Byte .................................... 8**4
- 12 Bit FATs .............................................. 8**5
- 16 Bit FATs .............................................. 8**6
- Cluster Size Information ......................................... 8**7
- DOS Disk Directory ............................................... 8**8
- The Data Area .................................................... 8**9
- Floppy Disk Types ................................................ 8**10
- Hard Disk Layout ................................................. 8**11
- System Initialization ............................................ 8**12
- Boot Record/Partition Table ...................................... 8**13
- Hard Disk Technical Information .................................. 8**14
- Determining Hard Disk File Allocation ............................ 8**15
- BIOS Disk Functions .............................................. 8**16
-
- CHAPTER 9 DOS Device Drivers
-